﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SeguridadGaleria
{
    public class TiposAuditoria
    {
        public enum TIPO_AUDITORIA
        {
            ACCESO_CORRECTO,
            ACCESO_DENEGADO,
            BORRAR_CLIENTE,
            ERROR_BORRAR_CLIENTE,
            CREAR_CLIENTE,
            ERROR_CREAR_CLIENTE,
            MODIFICAR_DATOS_CLIENTE,
            ERROR_MODIFICAR_DATOS_CLIENTE,
            LISTAR_CLIENTE,
            ERROR_LISTAR_CLIENTE,
            BORRAR_OBRA,
            ERROR_BORRAR_OBRA,
            CREAR_OBRA,
            ERROR_CREAR_OBRA,
            MODIFICAR_DATOS_OBRA,
            ERROR_MODIFICAR_DATOS_OBRA,
            LISTAR_OBRA,
            ERROR_LISTAR_OBRA,
            BORRAR_USUARIO,
            ERROR_BORRAR_USUARIO,
            CREAR_USUARIO,
            ERROR_CREAR_USUARIO,
            MODIFICAR_DATOS_USUARIO,
            ERROR_MODIFICAR_DATOS_USUARIO,
            MODIFICAR_DATOS_USUARIO_PROPIO,
            ERROR_MODIFICAR_DATOS_USUARIO_PROPIO,
            ORDENAR_ADMINISTRADOR,
            ERROR_ORDENAR_ADMINISTRADOR,
            DESORDENAR_ADMINISTRADOR,
            ERROR_DESORDENAR_ADMINISTRADOR,
            LISTAR_USUARIO,
            ERROR_LISTAR_USUARIO,

            CAMBIAR_DATOS_ACCESO,
            ERROR_CAMBIAR_DATOS_ACCESO,
            CAMBIAR_DIRECCIONES_SERVICIOS,
            ERROR_CAMBIAR_DIRECCIONES_DE_SERVICIOS,
            CAMBIAR_TEMATICAS,
            ERROR_CAMBIAR_TEMATICAS,

            CREAR_SUBASTA_LOCAL,
            ERROR_CREAR_SUBASTA_LOCAL,
            INICIO_PUBLICAR_SUBASTA,
            PUBLICAR_SUBASTA,
            ERROR_PUBLICAR_SUBASTA,
            RECIBIR_PUBLICACION_SUBASTA,
            ERROR_RECIBIR_PUBLICACION_SUBASTA,
            RECIBIR_ACTIVACION_SUBASTA,
            ERROR_RECIBIR_ACTIVACION_SUBASTA,
            RECIBIR_FINALIZACION_SUBASTA,
            ERROR_RECIBIR_FINALIZACION_SUBASTA,
            RECIBIR_CANCELACION_SUBASTA,
            ERROR_RECIBIR_CANCELACION_SUBASTA,
            RECIBIR_CONFIRMACION_SUBASTA,
            ERROR_RECIBIR_CONFIRMACION_SUBASTA,
            RECIBIR_MODIFICACION_SUBASTA,
            ERROR_RECIBIR_MODIFICACION_SUBASTA,
            RECIBIR_PUJA,
            ERROR_AL_RECIBIR_PUJA,
            PUJAR,
            ERROR_AL_PUJAR,
            SUSCRIBIRSE,
            ERROR_AL_SUSCRIBIRSE,
            INICIO_MODIFICAR_SUBASTA,
            MODIFICAR_SUBASTA,
            ERROR_MODIFICAR_SUBASTA,
            INICIO_CANCELAR_SUBASTA,
            CANCELADA_SUBASTA,
            ERROR_CANCELAR_SUBASTA,
            INICIO_FINALIZAR_SUBASTA_MANUAL,
            FINALIZAR_SUBASTA_MANUAL,
            ERROR_FINALIZAR_SUBASTA_MANUAL,
            INICIO_OBTENER_SUBASTA_ONLINE,
            OBTENIDA_SUBASTA_ONLINE,
            ERROR_OBTENER_SUBASTA_ONLINE,
            CREAR_USUARIO_ROLES,
            INICIO_CREAR_USUARIO_ROLES,
            ERROR_CREAR_USUARIO_ROLES,
            CREAR_GRUPO_ROLES,
            INICIO_CREAR_GRUPO_ROLES,
            ERROR_CREAR_GRUPO_ROLES,
            DAR_PRIVILEGIOS_GRUPO,
            INICIO_DAR_PRIVILEGIOS_GRUPO,
            ERROR_DAR_PRIVILEGIOS_GRUPO,
            QUITAR_PRIVILEGIOS_GRUPO,
            INICIO_QUITAR_PRIIVILEGIOS_GRUPO,
            ERROR_QUITAR_PRIVILEGIOS_GRUPO,
            INICIO_DAR_PRIVILEGIOS_USUARIO,
            DAR_PRIVILEGIOS_USUARIO,
            ERROR_DAR_PRIVILEGIOS_USUARIO,
            QUITAR_PRIVILEGIOS_USUARIO,
            INICIO_QUITAR_PRIVILEGIOS_USUARIO,
            ERROR_QUITAR_PRIVILEGIOS_USUARIO,
            CAMBIAR_USUARIO_GRUPO,
            INICIO_CAMBIAR_USUARIO_DE_GRUPO,
            ERROR_CAMBIAR_USUARIO_DE_GRUPO,
            OBTENER_PRIVILEGIOS_SERVIDOR,
            INICIO_OBTENER_PRIVILEGIOS_SERVIDOR,
            ERROR_OBTENER_PRIVILEGIOS_SERVIDOR
        };

        private static string[] TiposAuditoriaText = {
            "Acceso correcto",
            "Acceso incorrecto",
            "Borrar cliente",
            "Error al borrar cliente",
            "Crear cliente",
            "Error al crear cliente",
            "Modificar datos cliente",
            "Error al modificar datos cliente",
            "Listar cliente",
            "Error al listar cliente",
            "Borrar obra",
            "Error al borrar obra",
            "Crear obra",
            "Error al crear obra",
            "Modificar datos obra",
            "Error al modificar datos obra",
            "Listar obra",
            "Error al listar obra",
            "Borrar usuario",
            "Error al borrar usuario",
            "Crear usuario",
            "Error al crear usuario",
            "Modificar datos de un usuario",
            "Error al modificar datos de un usuario",
            "Modificar datos del usuario propio",
            "Error al modificar datos de un usuario propio",
            "Ordenar administrador",
            "Error al ordenar admnistrador",
            "Desordenar administrador",
            "Error al desordenar administrador",
            "Listar usuario",
            "Error al listar usuario",

            "Cambiar datos de acceso",
            "Error al cambiar datos de acceso",
            "Cambiar direcciones de servicios",
            "Error al cambiar direcciones de servicios",
            "Cambiar temáticas",
            "Error al cambiar temáticas",

            "Crear subasta en local",
            "Error al crear subasta en local",
            "Inicio publicar subasta",
            "Publicar subasta",
            "Error al publicar subasta",
            "Recibir publicación de subasta",
            "Error al recibir publicación de subasta",
            "Recibir activación de subasta",
            "Error al recibir activación de subasta",
            "Recibir finalización de subasta",
            "Error al recibir finalización de subasta",
            "Recibir cancelación de subasta",
            "Error al recibir cancelación de subasta",
            "Recibir confirmación de subasta",
            "Error al recibir confirmación de subasta",
            "Recibir modificación de subasta",
            "Error al recibir modificación de subasta",
            "Recibir nueva puja",
            "Error al recibir nueva puja",
            "Pujar",
            "Error al pujar",
            "Suscribirse",
            "Error al suscribirse",
            "Inicio modificar subasta",
            "Modificar datos de la subasta",
            "Error al modificar datos de la subasta",
            "Inicio cancelar subasta",
            "Cancelada subasta",
            "Error al cancelar subasta",
            "Inicio finalizar subasta manual",
            "Finalizar subasta manual",
            "Error al finalizar subasta manual",
            "Inicio obtener subasta online",
            "Obtenida subasta online",
            "Error al obtener subasta online",

            "Crear usuario en roles",
            "Iniciar crear usuario en roles",
            "Error al crear usuario en roles",
            "Crear grupo en roles",
            "Inicio crear grupo en roles",
            "Error al crear grupo en roles",
            "Dar privilegios grupo",
            "Inicio dar privilegios grupo",
            "Error al dar privilegios grupo",
            "Quitar privilegios grupo",
            "Inicio quitar privilegios grupo",
            "Error al quitar privilegios grupo",
            "Inicio dar privilegios usuario",
            "Dar privilegios usuario",
            "Error al dar privilegios usuario",
            "Quitar privilegios usuario",
            "Inicio quitar privilegios usuario",
            "Error al quitar privilegios usuario",
            "Cambiar usuario de grupo",
            "Inicio cambiar usuario de grupo",
            "Error al cambiar usuario de grupo",
            "Obtener privilegios servidor",
            "Inicio obtener privilegios servidor",
            "Error al obtener privilegios servidor"
        };

        public static int Ordinal (TIPO_AUDITORIA tipo)
        {
            return (int)tipo + 1;
        }

        public static string Texto(TIPO_AUDITORIA tipo)
        {
            return TiposAuditoriaText[(int)tipo];
        }
    }
}
